package com.work9;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Test {

    //一个Set集合中，存入很多身份证数据，但是有些身份证是用户随意输入的错误号码，
    // 请使用代码从集合中，将这些错误代码删除。
    //  (1)定义Set集合，存入多个字符串
    //
    //  (2)删除集合中不满足身份证号码的数据
    //
    //​    身份证要求：
    //
    //​	- 长度必须18位
    //
    //- 数字0不能开头
    //
    //  - 除了最后一位，中间不允许有字母
    //
    //  - 最后一位可以是数字或者Xx
    //
    //   (3)然后利用迭代器遍历集合元素并输出

    public static boolean isValidateIdCardNum() {
        String regex  = "([^0]\\d{16})(\\d|(?i)x|X){1}";
        //请输入
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入身份证号码");
        String str = scanner.nextLine();

        if(str.matches(regex)) {
            System.out.println("身份证号码正确");
            return true;
        }else {
            System.out.println("身份证号码错误");
            return false;
        }
    }

    public static void main(String[] args) {
        Set<String> idCards = new HashSet<>();
        idCards.add("3726221951dg010416");
        idCards.add("37222219700201041X");
        System.out.println("37222219700201041X".length());
        idCards.add("37262213u1dg010416");
        idCards.add("421182199207073777");
        idCards.add("3726221951dg010416");
        idCards.add("37262283951dg010416");
        idCards.add("3726221ll1dg010416");
        idCards.add("3726220051dg010416");
        idCards.add("3726222951dg010416");
        idCards.add("3726221951010416");
        idCards.add("3726221951dg010416");
        while (true) {
            if(isValidateIdCardNum()) {
                System.out.println("输入正确");
                break;
            }else {
                isValidateIdCardNum();
            }
        }
    }
}
